package com.tmxk.days01.wmh.Test;

/**
 * 创建一个用户自定义类---->人类
 *
 * @author Administrator
 * 变量：变量值可以改变，由数据类型，变量名，变量值组成，在内存中开辟一块地址空间所存储的数据；
 * 变量分为局部变量和成员变量；
 * 局部变量：在方法/代码块中定义的变量，是局部变量；
 * 成员变量（属性）：在类中直接定义的变量，是成员变量；
 * 局部变量和成员变量的区别：局部变量用完即释放
 * 1.定义位置不同，局部变量在方法/代码块内定义，成员变量定义在类中
 * 2.作用域不同（使用范围），局部变量只能在方法内部使用，成员变量在整个类中都可使用；
 * 3.初始值不同，局部变量在使用前必须赋初始值，成员变量在使用前没有赋初始值，系统会默认提供初始值。
 * 4.内存存储位置不同，局部变量存储在栈内存，成员变量存储在堆内存。
 */
public class People_wmh {
    /**
     * 方法：带小括号的叫方法。
     * 方法分类：无返回值数据类型，无参数
     * 无返回值数据类型，带参数
     * 有返回值数据类型，无参数
     * 有返回值数据类型，带参数
     * 无返回值数据类型关键字：void
     * 形参：形式上的参数，方法定义时，小括号中传递的，由数据类型和参数名组成;
     * 实参：实际传递的参数，调用方法时，小括号中传递的，只需传递参数名即可；
     * 无返回值数据类型，无参数 -->语法：访问修饰  void 方法名(){    //方法体}
     * 无返回值数据类型，带参数-->语法：访问修饰  void 方法名(形参列表){    //方法体}
     */

    //喜洋洋（name），男（sex）,年龄（age） 属于静态特征，即程序中属性(成员中/实例变量)
    // 吃饭（eat）,学习(study)等属于动态特征（动态行为），及程序中方法:
    //吃饭(eat) 学习(study)等属于动态特征(动态行为)，及程序方法。
    String name = "无名氏";
    String num;
    String lunch;
    String sex;
    int age;

    /**
     * 无参无返回值的普通方法
     */
    public void eat() {
        System.out.println(name + "谁在吃午饭");
    }
    //方法重载：在同一个类中定义的方法名相同，形参列表不同，构成了方法重载。
    //常识：同一个作用域下，相同的局部变量不允许重名;相同的成员变量不允许重名
    //同一个作用域下，    局部变量和成员变量是允许同名的，且使用时遵循就近原则。

    /**
     * 定义了一个带参无返回值的吃饭方法。
     *
     * @param name 姓名
     * @param num  数量
     *             this 引用
     */
    public void eat(String name, int num) {
        System.out.println(name + "带了" + num + "谁在吃午饭");

    }

    public void eat(String name) {
        name = "小张";
        System.out.println(name + "带了");

    }
}

